In a typical graphics processing system, one common graphics processing technique is the generation of images through the composition of a plurality of vertices. The plurality of vertices define a specific region containing a plurality of pixels therein. In common hardware implementations, interpolation of a pixel parameter is based on slopes of the value of the parameters at the vertices, for example, the value of a material color or texture at each of the three vertices for a triangle. Typically, the values are assumed to be planar wherein the three points of the triangle, vertices, provide all the requisite information for defining any parameter value over the entire x,y plane.
Typically, this interpolation process is implemented in two steps. The first step, a setup mode, is a once per triangle step of providing the slope of the parameter relative to x and y coordinates of a display screen. The slope may be denoted as a change in the parameter value divided by a change in an x plane and a change in the parameter value divided by a difference in the y plane. Furthermore, for each pixel within the triangle, the value at that point is calculated using these two slopes. The starting vertex is denoted as P0 and is assumed to be located at (x0,y0). For illustration purposes only, the other two vertices are denoted as P1, located at (x1,y1), and P2 is located at (x2,y2). Therefore, using equation 1, a parameter value for a particular location may be determined.P(x,y)=P0+(x−x0)*dP/dx+(y−y0)*dP/dy  Equation #1
A problem occurs in a typical processing system because of processing requirements to maintain an adequate level of precision. In a typical processing system, it is possible for the slopes in the dx and dy direction to have very large magnitudes, but opposite signs. The two slopes may largely cancel each other out, thereby leaving a reasonable value only if enough precision is used for the slope terms. For example, if a four bit sub-pixel precision is used in a screen having a 2K×2K bit precision, the parameter whose range within the triangle is limited to (0,0.1) may have a slope as much as 16 providing for the range of parameters across a screen to be as high as 32,768. Therefore, to accurately represent such a parameter to 24 bits of precision below the decimal point, the slope must be represented to a precision of 39 bits. Such precision is very costly to calculate in a setup engine, as well as costly to use for per-pixel interpolation. Not only are there transactional costs in terms processing cycles for computing values at the desired precision level, but there also exists costs in processing speed for determining these parameters.
Processing costs exists for parameter calculations across both the setup mode and a calculation mode of operation. There exists a need for a pixel processing method and apparatus to allow for parameter interpolation wherein the calculation of terms within the setup mode and calculations during the calculation mode provide improved precision and efficiency through a reduction in overall calculations.